package com.api.test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Collections;
import java.util.Date;

import org.apache.commons.codec.binary.Base64;

import com.bin.common.utils.DateTimeUtils;
import com.bin.common.utils.StringUtils;
import com.huitone.smspfm.socket.utils.SerialUtils;
import com.huitone.smspfm.socket.client.SocketClient;
import com.huitone.smspfm.socket.core.ClientServerUserChecker;
import com.huitone.smspfm.socket.protocol.sgip.constant.Constant;
import com.huitone.smspfm.socket.protocol.sgip.message.msgbody.Submit;
import com.huitone.smspfm.socket.protocol.sgip.message.msghead.Head;
import com.huitone.smspfm.socket.server.SocketServer;



/**
* @Title ClientSample.java
* @Package com.api.test
* @Description 本例子主要展示客户端的使用方式
* @author ybliang
* @date 2017年4月25日 下午4:34:23
* @version V1.0
*/
public class CSPGcsClient {
	
	public static void main(String[] args) throws IOException {	
		
		
		
		int count = 2;
		long sleepTime = 10;
		if(args != null && args.length >= 2){
			System.out.println(args[0]);
			System.out.println(args[1]);
			
			count = Integer.valueOf(args[0]);
			sleepTime = Long.valueOf(args[1]);
		}
		int sendNum = 0;
		
		
		SocketClient client = SocketClient.getInstance();
		client.setMessageHandler(new ClientMessageHandler())
		.setServerIp("172.16.7.91") // 短信平台的IP地址 (短信平台接口地址)
			.setServerPort(8901) // 短信平台的端口号
			.setLoginName("27604")  // 用户名 (短信平台分配)
			.setLoginPassword("123456") // 密码 (短信平台分配)
			.setSrvNode("27604") // 业务端编码 (短信平台分配)
			.setCoderule(100002); // 业务端编号规则(短信平台分配)
		while(true) {
			// 构造下发短信消息体
			Submit submit = Submit.build(Collections.singletonList("15700105271"), //用户号码,最多一百个
					"27604", // 业务端编码 (短信平台分配)
					"sd", // 业务类型编码 (短信平台分配)
					"8080", // 发送端口号 (短信平台分配)
					1, // 有三个可选项: 0 该条消息只有最后出错时要返回状态报告; 1 该条消息无论最后是否成功都要返回状态报告; 2-该条消息不需要返回状态报告
					Constant.MessageCodingE.GBK.getValue(), // 默认
					Constant.MessageTypeE.SMS.getValue(), // 默认
					"我是测试短信　HAHAHAHA! wpn 吴培南 "); // 短信内容
//					sb.toString()); // 短信内容
			//ActiveTest activeTest = new ActiveTest();
			// 构造下发短信消息头
			Head head = Head.build(submit.length(), // 短信消息体长度
					100002,  // 业务端编号规则 (短信平台分配)
					StringUtils.tolong(DateTimeUtils.dateToStr(new Date(), "MMddHHmmss")), // 时间
					SerialUtils.getSerial()); // 序号从零到Integer.MAX_VALUE循环使用
			
			// 发送短信
			client.sendMsg(head, submit);
			
			try {
				Thread.sleep(sleepTime);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			
			sendNum ++;
			if(count-- < 0){
				break;
			}
		}
//		try {
//			Thread.sleep(5*1000);
//		} catch (InterruptedException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//		SocketClient.getInstance().shutdown();
	}
}
